package com.graduation.project.service.process;

import com.baomidou.mybatisplus.extension.service.IService;
import com.graduation.project.entity.dto.task.ListTaskDTO;
import com.graduation.project.entity.dto.assignmentBook.SaveOrUpdateAssignmentDTO;
import com.graduation.project.entity.dto.UpdateStatusDTO;
import com.graduation.project.entity.po.Assignment;
import com.graduation.project.utils.ResultUtil;

public interface AssignmentBookService extends IService<Assignment> {

    /**
     * 获取课题下拉数据
     * @return ResultUtil
     */
    ResultUtil<?> getTaskOptions();

    /**
     * 获取任务书详情
     * @param id 任务书id
     * @return ResultUtil
     */
    ResultUtil<?> getAssignmentBookDetails(Long id);

    /**
     * 新增任务书
     * @param input 新增|修改任务书输入类
     * @return ResultUtil
     */
    ResultUtil<?> addAssignmentBook(SaveOrUpdateAssignmentDTO input);

    /**
     * 修改任务书
     * @param input 新增|修改任务书输入类
     * @return ResultUtil
     */
    ResultUtil<?> updateAssignmentBook(SaveOrUpdateAssignmentDTO input);

    /**
     * 删除任务书
     * @param id 任务书id
     * @return ResultUtil
     */
    ResultUtil<?> deleteAssignmentBook(Long id);

    /**
     * （条件）查询任务书
     * @param input 条件查询任务书输入类
     * @return ResultUtil
     */
    ResultUtil<?> listAssignmentBookByCondition(ListTaskDTO input);

    /**
     * 审核任务书
     * @param input 修改状态输入类
     * @return ResultUtil
     */
    ResultUtil<?> auditAssignmentBook(UpdateStatusDTO input);
}
